package com.example.demo.utils;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;

/**
 * 随机生成验证码工具类
 */
public class ValidateCodeUtils {
    /**
     * 随机生成验证码
     * @param
     * @return
     */
//    public static Integer generateValidateCode(int length){
//        Integer code =null;
//        if(length == 4){
//            code = new Random().nextInt(9999);//生成随机数，最大为9999
//            if(code < 1000){
//                code = code + 1000;//保证随机数为4位数字
//            }
//        }else if(length == 6){
//            code = new Random().nextInt(999999);//生成随机数，最大为999999
//            if(code < 100000){
//                code = code + 100000;//保证随机数为6位数字
//            }
//        }else{
//            throw new RuntimeException("只能生成4位或6位数字验证码");
//        }
//        return code;
//    }
//
//    /**
//     * 随机生成指定长度字符串验证码
//     * @param length 长度
//     * @return
//     */
//    public static String generateValidateCode4String(int length){
//        Random rdm = new Random();
//        String hash1 = Integer.toHexString(rdm.nextInt());
//        String capstr = hash1.substring(0, length);
//        return capstr;
//    }
    // 随机验证码
    public static String achieveCode() {  //由于数字 1 、 0 和字母 O 、l 有时分不清楚，所以，没有数字 1 、 0
        String[] beforeShuffle= new String[] { "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F",
                "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a",
                "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
                "w", "x", "y", "z" };
        List list = Arrays.asList(beforeShuffle);//将数组转换为集合
        Collections.shuffle(list);  //打乱集合顺序
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < list.size(); i++) {
            sb.append(list.get(i)); //将集合转化为字符串
        }
        return sb.toString().substring(3, 8);  //截取字符串第4到8
    }

}
